﻿﻿using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using transferObjects;
using System.Collections.Generic;

/// <summary>
/// Descripción breve de EmpresaDB
/// </summary>
namespace dao.sqlServer2005
{
    public class EmpresaDB
    {
        SqlCommand insertEmpresa;
        SqlCommand selectTodasEmpresas;
        SqlCommand selectEmpresa;
        SqlCommand selectEmpresaID;
        SqlCommand selectNombreFantasia;
        SqlCommand selectNombresEmpresas;
        SqlCommand updateEmpresa;
        SqlCommand updateEstadoEmpresa;

        public EmpresaDB(SqlConnection connection)
        {
            // query que inserta los datos en la bd empresa
            String query = "INSERT INTO Empresa (empresaID,cajaCompensacionOA,estado,tipoEmpresa,empSubcontratada,razonSocial,nombreFantasia,giro" +
            ",sitioWeb,calle,numero,dpto_Oficina,region,provincia" +
           ",nombresRL,apellidosRL,rutRL,telRedFijaRL,telCelularRL,emailRL,mutualidadOA,tasaCotTotalOA"+
           ",numAdherenteOA,nombresPR,apellidosPR,calidadPR,telRedfijaPR"+
           ",telCelularPR,conoceReglPR,numRegSaludPR,diasFaenaPR,callePR,numeroPR,dpto_OficinaPR"+
           ",regionPR,provinciaPR,observaciones) "+
           "VALUES (@empresaID,@cajaCompensacionOA,@estado,@tipoEmpresa,@empSubcontratada,@razonSocial,@nombreFantasia,@giro" +
           ",@sitioWeb,@calle,@numero,@dpto_Oficina,@region,@provincia,@nombresRL,@apellidosRL,@rutRL" +
           ",@telRedFijaRL,@telCelularRL,@emailRL,@mutualidadOA,@tasaCotTotalOA,@numAdherenteOA,@nombresPR,@apellidosPR,@calidadPR"+ 
           ",@telRedfijaPR,@telCelularPR,@conoceReglPR,@numRegSaludPR,@diasFaenaPR,@callePR,@numeroPR,@dpto_OficinaPR"+
           ",@regionPR,@provinciaPR,@observaciones)";
            insertEmpresa = new SqlCommand(query, connection);

            //query que selecciona todos las empresas 
            query = "SELECT * " +
                    "FROM EMPRESA";
            selectTodasEmpresas = new SqlCommand(query, connection);

            //selectNombresEmpresas
            query = "SELECT nombreFantasia " +
                    "FROM EMPRESA";
            selectNombresEmpresas = new SqlCommand(query, connection);

            //query que selecciona una empresa
            query = "SELECT * " +
                    "FROM EMPRESA "+
                    "WHERE empresaID = @empresaID";
            selectEmpresa = new SqlCommand(query, connection);
            selectEmpresa.Parameters.Add("empresaID", SqlDbType.VarChar);

            //query que obtiene el ID de una empresa
            query = "SELECT empresaID " +
                    "FROM EMPRESA " +
                    "WHERE nombreFantasia = @nombreFantasia";
            selectEmpresaID = new SqlCommand(query, connection);
            selectEmpresaID.Parameters.Add("nombreFantasia", SqlDbType.VarChar);

            //query que obtiene el Nombre de fantasia de una empresa
            query = "SELECT nombreFantasia " +
                    "FROM EMPRESA " +
                    "WHERE empresaID = @empresaID";
            selectNombreFantasia = new SqlCommand(query, connection);
            selectNombreFantasia.Parameters.Add("empresaID", SqlDbType.VarChar);
            
            // query que actualiza o modifica los datos del Empresa en su base de datos
            query = "UPDATE EMPRESA " +
                    "SET empresaID=@empresaID,cajaCompensacionOA=@cajaCompensacionOA,estado=@estado,tipoEmpresa=@tipoEmpresa,empSubcontratada=@empSubcontratada,razonSocial=@razonSocial,nombreFantasia=@nombreFantasia,giro=@giro" +
                    ",sitioWeb=@sitioWeb,calle=@calle,numero=@numero,dpto_oficina=@dpto_oficina,region=@region,provincia=@provincia,nombresRL=@nombresRL,apellidosRL=@apellidosRL,rutRL=@rutRL" +
                    ",telRedFijaRL=@telRedFijaRL,telCelularRL=@telCelularRL,emailRL=@emailRL" +
                    ",MutualidadOA=@MutualidadOA,tasaCotTotalOA=@tasaCotTotalOA,numAdherenteOA=@numAdherenteOA,nombresPR=@nombresPR,apellidosPR=@apellidosPR,calidadPR=@calidadPR" +
                    ",telRedFijaPR=@telRedFijaPR,telCelularPR=@telCelularPR,conoceReglPR=@conoceReglPR,numRegSaludPR=@numRegSaludPR,diasFaenaPR=@diasFaenaPR,callePR=@callePR,numeroPR=@numeroPR,dpto_OficinaPR=@dpto_OficinaPR" +
                    ",regionPR=@regionPR,provinciaPR=@provinciaPR,observaciones=@observaciones " +
                    "WHERE empresaID=@empresaID";
            updateEmpresa = new SqlCommand(query, connection);

            // query que actualiza o modifica el estado de una empresa Empresa en su base de datos
            query = "UPDATE Empresa SET estado = @estado WHERE nombreFantasia = @nombreFantasia";
            updateEstadoEmpresa = new SqlCommand(query, connection);


        }


        public int agregarEmpresa(Empresa empresa)
        {
            try
            {

                insertEmpresa.Parameters.Add(new SqlParameter("empresaID", SqlDbType.VarChar));
                insertEmpresa.Parameters.Add(new SqlParameter("cajaCompensacionOA", SqlDbType.VarChar));
                insertEmpresa.Parameters.Add(new SqlParameter("estado", SqlDbType.VarChar));
                insertEmpresa.Parameters.Add(new SqlParameter("tipoEmpresa", SqlDbType.VarChar));
                insertEmpresa.Parameters.Add(new SqlParameter("empSubcontratada", SqlDbType.VarChar));
                insertEmpresa.Parameters.Add(new SqlParameter("razonSocial", SqlDbType.VarChar));
                insertEmpresa.Parameters.Add(new SqlParameter("nombreFantasia", SqlDbType.VarChar));
                insertEmpresa.Parameters.Add(new SqlParameter("giro", SqlDbType.VarChar));
                insertEmpresa.Parameters.Add(new SqlParameter("sitioWeb", SqlDbType.VarChar));
                insertEmpresa.Parameters.Add(new SqlParameter("calle", SqlDbType.VarChar));
                insertEmpresa.Parameters.Add(new SqlParameter("numero", SqlDbType.VarChar));
                insertEmpresa.Parameters.Add(new SqlParameter("dpto_Oficina", SqlDbType.VarChar));
                insertEmpresa.Parameters.Add(new SqlParameter("region", SqlDbType.VarChar));
                insertEmpresa.Parameters.Add(new SqlParameter("provincia", SqlDbType.VarChar));
                insertEmpresa.Parameters.Add(new SqlParameter("nombresRL", SqlDbType.VarChar));
                insertEmpresa.Parameters.Add(new SqlParameter("apellidosRL", SqlDbType.VarChar));
                insertEmpresa.Parameters.Add(new SqlParameter("rutRL", SqlDbType.VarChar));
                insertEmpresa.Parameters.Add(new SqlParameter("telRedFijaRL", SqlDbType.VarChar));
                insertEmpresa.Parameters.Add(new SqlParameter("telCelularRL", SqlDbType.VarChar));
                insertEmpresa.Parameters.Add(new SqlParameter("emailRL", SqlDbType.VarChar));
                insertEmpresa.Parameters.Add(new SqlParameter("mutualidadOA", SqlDbType.VarChar));
                insertEmpresa.Parameters.Add(new SqlParameter("tasaCotTotalOA", SqlDbType.VarChar));
                insertEmpresa.Parameters.Add(new SqlParameter("numAdherenteOA", SqlDbType.VarChar));
                insertEmpresa.Parameters.Add(new SqlParameter("nombresPR", SqlDbType.VarChar));
                insertEmpresa.Parameters.Add(new SqlParameter("apellidosPR", SqlDbType.VarChar));
                insertEmpresa.Parameters.Add(new SqlParameter("calidadPR", SqlDbType.VarChar));
                insertEmpresa.Parameters.Add(new SqlParameter("telRedFijaPR", SqlDbType.VarChar));
                insertEmpresa.Parameters.Add(new SqlParameter("telCelularPR", SqlDbType.VarChar));
                insertEmpresa.Parameters.Add(new SqlParameter("conoceReglPR", SqlDbType.VarChar));
                insertEmpresa.Parameters.Add(new SqlParameter("numRegSaludPR", SqlDbType.VarChar));
                insertEmpresa.Parameters.Add(new SqlParameter("diasFaenaPR", SqlDbType.VarChar));
                insertEmpresa.Parameters.Add(new SqlParameter("callePR", SqlDbType.VarChar));
                insertEmpresa.Parameters.Add(new SqlParameter("numeroPR", SqlDbType.VarChar));
                insertEmpresa.Parameters.Add(new SqlParameter("dpto_OficinaPR", SqlDbType.VarChar));
                insertEmpresa.Parameters.Add(new SqlParameter("regionPR", SqlDbType.VarChar));
                insertEmpresa.Parameters.Add(new SqlParameter("provinciaPR", SqlDbType.VarChar));
                insertEmpresa.Parameters.Add(new SqlParameter("observaciones", SqlDbType.VarChar));

                insertEmpresa.Parameters[0].Value = empresa.EmpresaID;
                insertEmpresa.Parameters[1].Value = empresa.CajaCompensacionOA;
                insertEmpresa.Parameters[2].Value = empresa.Estado;
                insertEmpresa.Parameters[3].Value = empresa.TipoEmpresa;
                insertEmpresa.Parameters[4].Value = empresa.EmpSubcontratada;
                insertEmpresa.Parameters[5].Value = empresa.RazonSocial;
                insertEmpresa.Parameters[6].Value = empresa.NombreFantasia;
                insertEmpresa.Parameters[7].Value = empresa.Giro;
                insertEmpresa.Parameters[8].Value = empresa.SitioWeb;
                insertEmpresa.Parameters[9].Value = empresa.Calle;
                insertEmpresa.Parameters[10].Value = empresa.Numero;
                insertEmpresa.Parameters[11].Value = empresa.Dpto_Oficina;
                insertEmpresa.Parameters[12].Value = empresa.Region;
                insertEmpresa.Parameters[13].Value = empresa.Provincia;
                insertEmpresa.Parameters[14].Value = empresa.NombresRL;
                insertEmpresa.Parameters[15].Value = empresa.ApellidosRL;
                insertEmpresa.Parameters[16].Value = empresa.RutRL;
                insertEmpresa.Parameters[17].Value = empresa.TelRedFijaRL;
                insertEmpresa.Parameters[18].Value = empresa.TelCelularRL;
                insertEmpresa.Parameters[19].Value = empresa.EmailRL;
                insertEmpresa.Parameters[20].Value = empresa.MutualidadOA;
                insertEmpresa.Parameters[21].Value = empresa.TasaCotTotalOA;
                insertEmpresa.Parameters[22].Value = empresa.NumAdherenteOA;
                insertEmpresa.Parameters[23].Value = empresa.NombresPR;
                insertEmpresa.Parameters[24].Value = empresa.ApellidosPR;
                insertEmpresa.Parameters[25].Value = empresa.CalidadPR;
                insertEmpresa.Parameters[26].Value = empresa.TelRedFijaPR;
                insertEmpresa.Parameters[27].Value = empresa.TelCelularPR;
                insertEmpresa.Parameters[28].Value = empresa.ConoceReglPR;
                insertEmpresa.Parameters[29].Value = empresa.NumRegSaludPR;
                insertEmpresa.Parameters[30].Value = empresa.DiasFaenaPR;
                insertEmpresa.Parameters[31].Value = empresa.CallePR;
                insertEmpresa.Parameters[32].Value = empresa.NumeroPR;
                insertEmpresa.Parameters[33].Value = empresa.Dpto_OficinaPR;
                insertEmpresa.Parameters[34].Value = empresa.RegionPR;
                insertEmpresa.Parameters[35].Value = empresa.ProvinciaPR;
                insertEmpresa.Parameters[36].Value = empresa.Observaciones;

                int res = insertEmpresa.ExecuteNonQuery();

                return res;
            }
            catch (Exception e)
            {
                throw new Exception("Error en dao.sqlServer2005.EmpresaDB metodo agregarEmpresa \n\n" + e.Message);
            }
        }

        //modificar
        public int modificarEmpresa(Empresa empresa)
        {
            try
            {
                updateEmpresa.Parameters.Add(new SqlParameter("empresaID", SqlDbType.VarChar));
                updateEmpresa.Parameters.Add(new SqlParameter("cajaCompensacionOA", SqlDbType.VarChar));
                updateEmpresa.Parameters.Add(new SqlParameter("estado", SqlDbType.VarChar));
                updateEmpresa.Parameters.Add(new SqlParameter("tipoEmpresa", SqlDbType.VarChar));
                updateEmpresa.Parameters.Add(new SqlParameter("empSubcontratada", SqlDbType.VarChar));
                updateEmpresa.Parameters.Add(new SqlParameter("razonSocial", SqlDbType.VarChar));
                updateEmpresa.Parameters.Add(new SqlParameter("nombreFantasia", SqlDbType.VarChar));
                updateEmpresa.Parameters.Add(new SqlParameter("giro", SqlDbType.VarChar));
                updateEmpresa.Parameters.Add(new SqlParameter("sitioWeb", SqlDbType.VarChar));
                updateEmpresa.Parameters.Add(new SqlParameter("calle", SqlDbType.VarChar));
                updateEmpresa.Parameters.Add(new SqlParameter("numero", SqlDbType.VarChar));
                updateEmpresa.Parameters.Add(new SqlParameter("dpto_Oficina", SqlDbType.VarChar));
                updateEmpresa.Parameters.Add(new SqlParameter("region", SqlDbType.VarChar));
                updateEmpresa.Parameters.Add(new SqlParameter("provincia", SqlDbType.VarChar));
                updateEmpresa.Parameters.Add(new SqlParameter("nombresRL", SqlDbType.VarChar));
                updateEmpresa.Parameters.Add(new SqlParameter("apellidosRL", SqlDbType.VarChar));
                updateEmpresa.Parameters.Add(new SqlParameter("rutRL", SqlDbType.VarChar));
                updateEmpresa.Parameters.Add(new SqlParameter("telRedFijaRL", SqlDbType.VarChar));
                updateEmpresa.Parameters.Add(new SqlParameter("telCelularRL", SqlDbType.VarChar));
                updateEmpresa.Parameters.Add(new SqlParameter("emailRL", SqlDbType.VarChar));
                updateEmpresa.Parameters.Add(new SqlParameter("mutualidadOA", SqlDbType.VarChar));
                updateEmpresa.Parameters.Add(new SqlParameter("tasaCotTotalOA", SqlDbType.VarChar));
                updateEmpresa.Parameters.Add(new SqlParameter("numAdherenteOA", SqlDbType.VarChar));
                updateEmpresa.Parameters.Add(new SqlParameter("nombresPR", SqlDbType.VarChar));
                updateEmpresa.Parameters.Add(new SqlParameter("apellidosPR", SqlDbType.VarChar));
                updateEmpresa.Parameters.Add(new SqlParameter("calidadPR", SqlDbType.VarChar));
                updateEmpresa.Parameters.Add(new SqlParameter("telRedFijaPR", SqlDbType.VarChar));
                updateEmpresa.Parameters.Add(new SqlParameter("telCelularPR", SqlDbType.VarChar));
                updateEmpresa.Parameters.Add(new SqlParameter("conoceReglPR", SqlDbType.VarChar));
                updateEmpresa.Parameters.Add(new SqlParameter("numRegSaludPR", SqlDbType.VarChar));
                updateEmpresa.Parameters.Add(new SqlParameter("diasFaenaPR", SqlDbType.VarChar));
                updateEmpresa.Parameters.Add(new SqlParameter("callePR", SqlDbType.VarChar));
                updateEmpresa.Parameters.Add(new SqlParameter("numeroPR", SqlDbType.VarChar));
                updateEmpresa.Parameters.Add(new SqlParameter("dpto_OficinaPR", SqlDbType.VarChar));
                updateEmpresa.Parameters.Add(new SqlParameter("regionPR", SqlDbType.VarChar));
                updateEmpresa.Parameters.Add(new SqlParameter("provinciaPR", SqlDbType.VarChar));
                updateEmpresa.Parameters.Add(new SqlParameter("observaciones", SqlDbType.VarChar));

                updateEmpresa.Parameters[0].Value = empresa.EmpresaID;
                updateEmpresa.Parameters[1].Value = empresa.CajaCompensacionOA;
                updateEmpresa.Parameters[2].Value = empresa.Estado;
                updateEmpresa.Parameters[3].Value = empresa.TipoEmpresa;
                updateEmpresa.Parameters[4].Value = empresa.EmpSubcontratada;
                updateEmpresa.Parameters[5].Value = empresa.RazonSocial;
                updateEmpresa.Parameters[6].Value = empresa.NombreFantasia;
                updateEmpresa.Parameters[7].Value = empresa.Giro;
                updateEmpresa.Parameters[8].Value = empresa.SitioWeb;
                updateEmpresa.Parameters[9].Value = empresa.Calle;
                updateEmpresa.Parameters[10].Value = empresa.Numero;
                updateEmpresa.Parameters[11].Value = empresa.Dpto_Oficina;
                updateEmpresa.Parameters[12].Value = empresa.Region;
                updateEmpresa.Parameters[13].Value = empresa.Provincia;
                updateEmpresa.Parameters[14].Value = empresa.NombresRL;
                updateEmpresa.Parameters[15].Value = empresa.ApellidosRL;
                updateEmpresa.Parameters[16].Value = empresa.RutRL;
                updateEmpresa.Parameters[17].Value = empresa.TelRedFijaRL;
                updateEmpresa.Parameters[18].Value = empresa.TelCelularRL;
                updateEmpresa.Parameters[19].Value = empresa.EmailRL;
                updateEmpresa.Parameters[20].Value = empresa.MutualidadOA;
                updateEmpresa.Parameters[21].Value = empresa.TasaCotTotalOA;
                updateEmpresa.Parameters[22].Value = empresa.NumAdherenteOA;
                updateEmpresa.Parameters[23].Value = empresa.NombresPR;
                updateEmpresa.Parameters[24].Value = empresa.ApellidosPR;
                updateEmpresa.Parameters[25].Value = empresa.CalidadPR;
                updateEmpresa.Parameters[26].Value = empresa.TelRedFijaPR;
                updateEmpresa.Parameters[27].Value = empresa.TelCelularPR;
                updateEmpresa.Parameters[28].Value = empresa.ConoceReglPR;
                updateEmpresa.Parameters[29].Value = empresa.NumRegSaludPR;
                updateEmpresa.Parameters[30].Value = empresa.DiasFaenaPR;
                updateEmpresa.Parameters[31].Value = empresa.CallePR;
                updateEmpresa.Parameters[32].Value = empresa.NumeroPR;
                updateEmpresa.Parameters[33].Value = empresa.Dpto_OficinaPR;
                updateEmpresa.Parameters[34].Value = empresa.RegionPR;
                updateEmpresa.Parameters[35].Value = empresa.ProvinciaPR;
                updateEmpresa.Parameters[36].Value = empresa.Observaciones;

                int res = updateEmpresa.ExecuteNonQuery();

                return res;
            }
            catch (Exception ex)
            {
                throw new Exception("Error en dao.sqlServer2005.DesperfectoDB metodo actualizarDesperfecto \n\n" + ex.Message);
            }
        }


        //modificar el estado de una empresa
        public int modificarEstadoEmpresa(String estado, String nombreFantasia)
        {
            try
            {
                updateEstadoEmpresa.Parameters.Add(new SqlParameter("estado", SqlDbType.VarChar));
                updateEstadoEmpresa.Parameters.Add(new SqlParameter("nombreFantasia", SqlDbType.VarChar));
                updateEstadoEmpresa.Parameters[0].Value = estado;
                updateEstadoEmpresa.Parameters[1].Value = nombreFantasia;

                int res = updateEstadoEmpresa.ExecuteNonQuery();

                return res;
            }
            catch (Exception ex)
            {
                throw new Exception("Error en dao.sqlServer2005.DesperfectoDB metodo actualizar Estado Empresa \n\n" + ex.Message);
            }
        }

        //obtener todas las empresas de la bd
        public List<Empresa> obtenerTodasEmpresas()
        {
            try
            {
                List<Empresa> empresas = new List<Empresa>();
                SqlDataReader reader = selectTodasEmpresas.ExecuteReader();
                Empresa empresa;
                while (reader.Read())
                {
                    empresa = new Empresa();
                    empresa.EmpresaID = reader.GetString(0);
                    empresa.CajaCompensacionOA = reader.GetString(1);
                    empresa.Estado = reader.GetString(2);
                    empresa.TipoEmpresa = reader.GetString(3);
                    empresa.EmpSubcontratada = reader.GetString(4);
                    empresa.RazonSocial =reader.GetString(5);
                    empresa.NombreFantasia = reader.GetString(6);
                    empresa.Giro = reader.GetString(7);           
                    empresa.SitioWeb=reader.GetString(8); 
                    empresa.Calle=reader.GetString(9); 
                    empresa.Numero=reader.GetString(10);
                    empresa.Dpto_Oficina=reader.GetString(11); 
                    empresa.Region=reader.GetString(12);
                    empresa.Provincia=reader.GetString(13); 
                    empresa.NombresRL=reader.GetString(14);  
                    empresa.ApellidosRL=reader.GetString(15); 
                    empresa.RutRL=reader.GetString(16); 
                    empresa.TelRedFijaRL=reader.GetString(17);
                    empresa.TelCelularRL=reader.GetString(18);
                    empresa.EmailRL=reader.GetString(19);
                    empresa.MutualidadOA=reader.GetString(20);
                    empresa.TasaCotTotalOA=reader.GetString(21);
                    empresa.NumAdherenteOA=reader.GetString(22);
                    empresa.NombresPR=reader.GetString(23);
                    empresa.ApellidosPR=reader.GetString(24);
                    empresa.CalidadPR=reader.GetString(25);
                    empresa.TelRedFijaPR=reader.GetString(26);
                    empresa.TelCelularPR=reader.GetString(27);
                    empresa.ConoceReglPR=reader.GetString(28);
                    empresa.NumRegSaludPR=reader.GetString(29);
                    empresa.DiasFaenaPR=reader.GetString(30);
                    empresa.CallePR=reader.GetString(31);
                    empresa.NumeroPR=reader.GetString(32);
                    empresa.Dpto_OficinaPR=reader.GetString(33);
                    empresa.RegionPR=reader.GetString(34);
                    empresa.ProvinciaPR=reader.GetString(35);
                    empresa.Observaciones = reader.GetString(36);

                    empresas.Add(empresa);
                }
                return empresas;
            }
            catch (Exception e)
            {
                throw new Exception("Error en dao.sqlServer2005.EmpresaDB, método obtenerTodasEmpresas \n\nDetalle error:" + e.Message);
            }

        }

        //obtenerEmpresa
        public Empresa obtenerEmpresa(String empresaID)
        {
            try
            {
                selectEmpresa.Parameters[0].Value = empresaID;

                SqlDataReader reader = selectEmpresa.ExecuteReader();
                Empresa empresa = new Empresa();

                if (reader.Read())
                {

                    empresa.EmpresaID = reader.GetString(0);
                    empresa.CajaCompensacionOA = reader.GetString(1);
                    empresa.Estado = reader.GetString(2);
                    empresa.TipoEmpresa = reader.GetString(3);
                    empresa.EmpSubcontratada = reader.GetString(4);
                    empresa.RazonSocial = reader.GetString(5);
                    empresa.NombreFantasia = reader.GetString(6);
                    empresa.Giro = reader.GetString(7);
                    empresa.SitioWeb = reader.GetString(8);
                    empresa.Calle = reader.GetString(9);
                    empresa.Numero = reader.GetString(10);
                    empresa.Dpto_Oficina = reader.GetString(11);
                    empresa.Region = reader.GetString(12);
                    empresa.Provincia = reader.GetString(13);
                    empresa.NombresRL = reader.GetString(14);
                    empresa.ApellidosRL = reader.GetString(15);
                    empresa.RutRL = reader.GetString(16);
                    empresa.TelRedFijaRL = reader.GetString(17);
                    empresa.TelCelularRL = reader.GetString(18);
                    empresa.EmailRL = reader.GetString(19);
                    empresa.MutualidadOA = reader.GetString(20);
                    empresa.TasaCotTotalOA = reader.GetString(21);
                    empresa.NumAdherenteOA = reader.GetString(22);
                    empresa.NombresPR = reader.GetString(23);
                    empresa.ApellidosPR = reader.GetString(24);
                    empresa.CalidadPR = reader.GetString(25);
                    empresa.TelRedFijaPR = reader.GetString(26);
                    empresa.TelCelularPR = reader.GetString(27);
                    empresa.ConoceReglPR = reader.GetString(28);
                    empresa.NumRegSaludPR = reader.GetString(29);
                    empresa.DiasFaenaPR = reader.GetString(30);
                    empresa.CallePR = reader.GetString(31);
                    empresa.NumeroPR = reader.GetString(32);
                    empresa.Dpto_OficinaPR = reader.GetString(33);
                    empresa.RegionPR = reader.GetString(34);
                    empresa.ProvinciaPR = reader.GetString(35);
                    empresa.Observaciones = reader.GetString(36);
            
                }
                return empresa;
            }

            catch (Exception ex)
            {
                throw new Exception("Error en dao.sqlServer2005.PropiedadDB, método obtener propiedades \n\nDetalle error:" + ex.Message);
            }
        }

        //obtenerNombresEmpresas
        public List<String> obtenerNombresEmpresas()
        {
            try
            {
                List<String> empresas = new List<String>();
                SqlDataReader reader = selectNombresEmpresas.ExecuteReader();
                while (reader.Read())
                {
                    empresas.Add(reader.GetString(0));
                }
                return empresas;
            }
            catch (Exception e)
            {
                throw new Exception("Error en dao.sqlServer2005.CajasCompensacionDB, método obtenerCajasCompensacion \n\nDetalle error:" + e.Message);
            }

        }

        //Obtener ID de una empresa segun su nombre de fantasia
        public String obtenerEmpresaID(String nombreFantasia)
        {
            try
            {
                selectEmpresaID.Parameters[0].Value = nombreFantasia;
                SqlDataReader reader = selectEmpresaID.ExecuteReader();

                String empresa_ID = "";
                if (reader.Read())
                {
                    empresa_ID = reader.GetString(0);
                }
                return empresa_ID;
            }

            catch (Exception ex)
            {
                throw new Exception("Error en dao.sqlServer2005.PropiedadDB, método obtener empresa ID \n\nDetalle error:" + ex.Message);
            }
        }

        //Obtener el nombre de fantasia de una empresa segun el id(rut)
        public String obtenerNombreFantasia(String empresaID)
        {
            try
            {
                selectNombreFantasia.Parameters[0].Value = empresaID;
                SqlDataReader reader = selectNombreFantasia.ExecuteReader();

                String nombreFantasia = "";
                if (reader.Read())
                {
                    nombreFantasia = reader.GetString(0);
                }
                return nombreFantasia;
            }

            catch (Exception ex)
            {
                throw new Exception("Error en dao.sqlServer2005.PropiedadDB, método obtener empresa ID \n\nDetalle error:" + ex.Message);
            }
        }

    }
}

